Point of sale offer redemptions

ABSTRACT

Processing of point of sale (“POS”) redemptions via a “tap” of a contactless device comprises a POS data collector that facilitates a connection with a contactless device. A merchant scans items for purchase using a POS scanner, which captures product identification information. The POS scanner forwards the product identification information to a POS terminal. The POS data collector intercepts the product identification information between the POS scanner and the POS terminal. A user taps the contactless device in the POS data collector&#39;s radio frequency field, and a communication channel is established between the contactless device and the POS data collector. The POS data collector identifies the user via the contactless device and identifies coupons, merchant offers, and other value-added services to redeem with the transaction. The POS data collector forwards this information to the POS terminal, the redemptions are applied to the transaction, and the communication is terminated.

TECHNICAL FIELD

The present disclosure relates generally to contactless devices and moreparticularly to methods and systems that allow for processing of pointof sale (POS) redemptions via a “tap” of a contactless device with a POSdata collector.

BACKGROUND

Merchants have offered coupons or rebates as incentives for purchasingparticular products for some time. Traditionally, coupons aredistributed in a paper format. A user redeems the coupon by physicallytaking it to a merchant and purchasing a product that satisfies theterms of the coupon. Such system is limited in that users are requiredto clip or print out paper coupons and present such coupons to themerchant to redeem the discount. Other forms of traditional couponsincluded rebates for purchasing particular products, wherein afterpurchasing a product that satisfies the terms of the rebate offer, theuser fills out and returns required forms to request the rebate. Suchsystem is also limited in that the redemption is not automaticallyapplied and the user is required to submit additional paperwork toreceive the redemption at a later time. Also, because such rebates areusually requested and/or sent by mail, they carry a great deal ofunreliability and hassle for the user.

More recently, merchants have offered electronic coupons linked tomerchant loyalty cards. A user enrolls in a merchant's loyalty programand receives a loyalty card. A user then associates certain discounts tothe loyalty card and redeems these discounts by presenting the loyaltycard (or some form of identifying information, such as a telephonenumber) and the method of payment to the merchant when purchasing thediscounted products. In other circumstances, discounts are automaticallyassociated with the loyalty card and are redeemed by presenting theloyalty card (or some form of identifying information, such as atelephone number) and the method of payment to the merchant whenpurchasing the discounted products. However, such systems are limited inthat users are required to present a loyalty card (or some form ofidentifying information, such as a telephone number), in addition to themethod of payment, to redeem the discount.

Near Field Communication (NFC) is a proximity communication technologythat can enable contactless device payment technologies and that issupported by the Global System for Mobile Communications (GSM)Association. Radio frequency identification (RFID) is another wirelesscommunication technology that can be adapted to enable NFC contactlessdevice payment technology. NFC communication generally is conducted in arange from about 3 to about 4 inches. Such short communication distanceslimit enable secure communication between close field proximity enableddevices. In operation of an NFC transaction, a user “taps” a contactlessdevice, such as an NFC-enabled mobile phone, to a reader of a point ofsale (POS) system. The reader recognizes the NFC-enabled device when thedevice is moved within range of the reader, establishes a securecommunication channel with the device, and initiates a paymenttransaction between the reader and the device. NFC contactless paymentdevices can function as a credit card to enable purchases at thepoint-of-sale. During the conventional transaction, the device and thereader communicate to complete the predefined transaction.

SUMMARY

In certain exemplary aspects, a method of allowing processing of POSredemptions via a “tap” of a contactless device comprises a POS datacollector that facilitates a secure and convenient connection with acontactless device. The merchant scans items for purchase using a POSscanner, which captures product identification information. The POSscanner forwards the product identification information to a POSterminal. The POS data collector intercepts the product identificationinformation (for example, the bar code information) between the POSscanner and the POS terminal. A user taps the contactless device in thePOS data collector's radio frequency field, and a communication channelis established between the contactless device and the POS datacollector. The POS data collector identifies the user via thecontactless device and identifies coupons, merchant offers, andvalue-added services to redeem with the transaction. The POS datacollector forwards this information to the POS terminal, the redemptionsare applied to the transaction, and the communication is terminated.

These and other aspects, objects, features, and advantages of theexemplary embodiments will become apparent to those having ordinaryskill in the art upon consideration of the following detaileddescription of illustrated exemplary embodiments, which include the bestmode of carrying out the invention as presently presented.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting a system for collecting POS data, inaccordance with certain exemplary embodiments.

FIG. 2 is a block diagram depicting a system for collecting POS data, inaccordance with certain exemplary embodiments.

FIG. 3 is a block diagram depicting a POS data collector, in accordancewith certain exemplary embodiments.

FIG. 4 is a block flow diagram depicting a method for collecting POSdata, in accordance with certain exemplary embodiments.

FIG. 5 is a block diagram depicting a system for processing POSredemptions, in accordance with certain exemplary embodiments.

FIG. 6 is a block flow diagram depicting a method for processing POSredemptions, in accordance with exemplary embodiments.

FIG. 7 is a block flow diagram depicting a method for selecting coupons,in accordance with exemplary embodiments.

FIG. 8 is block flow diagram depicting a method for identifying coupons,in accordance with exemplary embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS Overview

The exemplary embodiments provide methods and systems that enable usersto utilize point of sale processing of redemptions with a tap of acontactless device. The merchant scans items for purchase using a POSscanner, which captures product identification information. The POSscanner forwards the product identification information to a POSterminal. A POS data collector intercepts the product identificationinformation (for example, bar code information) between the POS scannerand the POS terminal. A user taps the contactless device in the POS datacollector's radio frequency field, and a communication channel isestablished between the contactless device and the POS data collector.The POS data collector identifies the user via the contactless device.The POS data collector utilizes the user identification information andaccesses the user's saved redemption offers (for example, product,merchant, or manufacturer coupons, merchant offers, loyalty and rewardsoffers, prepaid offers, check-ins, membership cards, ticketing othervalue-added services, and other suitable offers) stored in a remotesystem. The POS data collector or the remote system identifies thecoupons, merchant offers, and other value-added services available forthe transaction by comparing the product identification information withthe saved redemption offers. If multiple items are available for asingle product or for the purchase, the user may be prompted to selectthe item(s) to apply to the transaction. The POS data collector obtainsthe coupon, merchant offer codes, and other value-added serviceidentifiers from the remote system and forwards those items to the POSterminal to be redeemed during the transaction.

In an alternative exemplary embodiment, the POS data collector accessessaved coupons, offers, and other value-added services stored in thecontactless device, for example, in a digital wallet of the contactlessdevice.

One or more aspects of the invention may comprise a computer programthat embodies the functions described and illustrated herein, whereinthe computer program is implemented in a computer system that comprisesinstructions stored in a machine-readable medium and a processor thatexecutes the instructions. However, it should be apparent that therecould be many different ways of implementing the invention in computerprogramming, and the invention should not be construed as limited to anyone set of computer program instructions. Further, a skilled programmerwould be able to write such a computer program to implement anembodiment of the disclosed invention based on the appended flow chartsand associated description in the application text. Therefore,disclosure of a particular set of program code instructions is notconsidered necessary for an adequate understanding of how to make anduse the invention. Further, those skilled in the art will appreciatethat one or more aspects of the invention described herein may beperformed by hardware, software, or a combination thereof, as may beembodied in one or more computing systems. Moreover, any reference to anact being performed by a computer should not be construed as beingperformed by a single computer as the act may be performed by more thanone computer. The inventive functionality of the invention will beexplained in more detail in the following description, read inconjunction with the figures illustrating the program flow.

The functionality of the exemplary embodiments will be explained in moredetail in the following description, read in conjunction with thefigures illustrating the program flow.

System Architecture

FIG. 1 depicts a system 100 for collecting POS data, in accordance withcertain exemplary embodiments. As depicted in FIG. 1, the system 100 maycomprise POS data collector 105, POS scanner 110, POS terminal 115, andremote system 150. POS data collector 105 may be connected to POSscanner 110 via connection 120, and to POS terminal 115 via connection125. POS data collector 105 may communicate with POS scanner 110 and POSterminal 115 using any standard or proprietary storage and/orcommunication protocol, including without limitation, universal serialbus (USB), RS-232, and/or any combination thereof. And while theembodiment in FIG. 1 depicts wired connections 120 and 125, either orboth of these connections may be replaced with a wireless communicationlink (for example, Wi-Fi, MiFi, NFC, Bluetooth, etc.) in accordance withcertain other exemplary embodiments. Additionally, while POS datacollector 105 is depicted as a standalone hardware device in FIGS. 1 and2, one or more components of POS data collector 105 may be integratedinto one or both of POS scanner 110 and POS terminal 115, in accordancewith alternative exemplary embodiments. For example, one or morecomponents of POS data collector 105 may be implemented as a softwaremodule or firmware in one or both of POS scanner 110 and/or POS terminal115.

As depicted in FIG. 1, the POS scanner 110 may be a traditional wired,generally stationary barcode scanner, in accordance with certainexemplary embodiments. FIG. 2 depicts system 200 according to analternative embodiment wherein POS scanner includes POS wireless barcodescanner 212 and POS wireless base station 210. In this alternativeembodiment, POS data collector 105 may communicate with POS wirelessbase station 210 in the same way the POS data collector 105 communicateswith POS scanner 110 of FIG. 1. While FIGS. 1 and 2 illustrate differentexemplary embodiments, it should be appreciated that the POS datacollector 105 may be used similarly in POS systems with hardware thatvaries from that depicted in FIGS. 1 and 2.

According to an exemplary embodiment, POS scanner 110 may be a barcodescanner and may be configured to read any number of barcode formats,including, without limitation UPC, EAN, JAN, etc. According to otherexemplary embodiments, POS scanner 110 may be an RFID reader or anyother device that is capable of reading product identifier informationin a POS system.

As further depicted in FIG. 1, POS data collector 105 may becommunicatively coupled to remote system 150 via network 140. Network140 may be implemented as, or may be a part of, a storage area network(SAN), personal area network (PAN), local area network (LAN), ametropolitan area network (MAN), a wide area network (WAN), a wirelesswide area network (WWAN), a wireless local area network (WLAN), avirtual private network (VPN), an intranet, the Internet, Bluetooth, NFCor any other appropriate architecture or system that facilitates thecommunication of signals, data and/or messages (generally referred to asdata). POS data collector 105 may connect to network 140 via connection135. According to an exemplary embodiment, connection 135 may be adedicated cellular modem connection. In an alternative embodiment,connection 135 may be a wired Ethernet connection, a Wi-Fi or Bluetoothconnection to a hotspot that has a wired/wireless Internet connection(for example, MiFi), or any other wired or wireless connection suitablefor communicating signals with network 140.

The exemplary remote system 150 enables storage of one or moreredemption offers. In an exemplary embodiment, the user (notillustrated) creates a user account with the remote system 150 that isaccessible by the POS data collector 105. In an exemplary embodiment,the user account information stored in the remote system 150 is alsostored on the contactless device 510.

FIG. 3 depicts a block diagram of POS data collector 105, in accordancewith certain exemplary embodiments. Components of POS data collector 105may include, but are not limited to, processor 360, storage resource362, network module 364, input/output (I/O) module 366, clock module368, GPS module 370, transceiver 372, and error indicator 130 (errorindicator 130 is also depicted in FIGS. 1, 2, and 5). As depicted,processor 360 may be communicatively coupled to each of the othercomponents of POS data collector 105.

Processor 360 may comprise any system, device, or apparatus operable tointerpret and/or execute program instructions and/or process dataassociated with software module 380, and may include, without limitationa microprocessor, microcontroller, digital signal processor (DSP),application specific integrated circuit (ASIC), or any other digital oranalog circuitry configured to interpret and/or execute programinstructions and/or process data. In some embodiments, processor 360 mayinterpret and/or execute program instructions and/or process data storedlocally (for example, in storage resource 362). In the same oralternative embodiments, processor 360 may interpret and/or executeprogram instructions and/or process data stored remotely (for example,in a network storage resource (not depicted) of network 140 of FIGS. 1and 2).

Local storage resource 362 may comprise computer-readable media (forexample, hard disk drive, floppy disk drive, CD-ROM, and/or other typeof rotating storage media, flash memory, EEPROM, and/or other type ofsolid state storage media) and may be generally operable to store data.

Network module 364 may be any suitable system, apparatus, or deviceoperable to serve as an interface between information POS data collector105 and network 140 (FIGS. 1 and 2). Network module 364 may enableinformation POS data collector 105 to communicate over network 140 usingany suitable transmission protocol and/or standard, including withoutlimitation all transmission protocols and/or standards enumerated abovewith respect to the discussion of network 140 and connection 135.

I/O module 366 may be any system, device, or apparatus generallyoperable to receive and/or transmit data to/from/within information POSdata collector 105. I/O module 366 may comprise, for example, any numberof communication interfaces, including without limitation a USBinterface and/or an RS-232 interface.

Clock module 368 may be any system, device, or apparatus generallyoperable to maintain an internal clock. According to certain exemplaryembodiments, clock module 368 may synchronize with the UTC (coordinateduniversal time). Additionally, clock module 368 may be configured tomaintain an accurate internal clock when power to POS data collector 105is removed (for example, via an independent battery power source).

GPS module 370 may be any system, device, or apparatus generallyoperable to determine and provide the location of POS data collector 105based on global positioning satellite signals or other similar methods(for example, via location information received by network module 364).

Transceiver 372 comprises a reader and/or antenna to receive informationfrom and communicate information to a contactless device 510 (depictedin FIG. 5). The transceiver 372 receives information from thecontactless device 510 and communicates the received information to theprocessor 360. The transceiver 372 also receives information from theprocessor 360 and communicates the received information to thecontactless device 510.

Error indicator 130 may be any system, device, or apparatus generallyoperable to provide an indication that may be detected visually oraudibly by a person near POS data collector 105. For example, errorindicator 130 may be a visible LED light, in accordance with certainexemplary embodiments. In the same or alternative embodiments, errorindicator may be an audible speaker capable of producing an audiblenoise.

The POS data collector 105 is described in more detail hereinafter withreference to the methods depicted in FIG. 4.

FIG. 5 is a block diagram depicting a system 500 for processing POSredemptions, in accordance with certain exemplary embodiments. Asdepicted in FIG. 5, the exemplary operating environment 500 includes aPOS data collector system 105 disposed between the POS scanner 110 or awireless POS scanner 212/210 and the POS terminal 115, the remote system150, and a contactless device system 510 that are configured tocommunicate with one another via one or more communication channels 120,125, 135, 140, 515.

In exemplary embodiments, the communication channel 515 comprises aproximity communication connection, such as Bluetooth, Wi-Fi, or nearfield communication (“NFC”).

In an exemplary embodiment, the contactless device system 510 refers toa smart device that can communicate via an electronic, magnetic, orradio frequency field between the device 510 and another device, such asthe POS data collector 105 or POS scanner 110 or 212/210. In anexemplary embodiment, the contactless device 510 comprises processingcapabilities, such as storage capacity/memory 530 and one or moreapplications 520 that can perform a particular function. In an exemplaryembodiment, the contactless device 510 comprises an operating system(not illustrated) and a user interface 515. Exemplary contactlessdevices 510 include smart phones; mobile phones; personal digitalassistants (“PDAs”); mobile computing devices, such as netbooks andiPads; other electronically enabled key fobs; electronically enabledcredit card type cards; and other devices, in each case havingprocessing and user interface functionality. Certain contactless devices510 can be used for multiple purposes, including financial transactions,coupons, ticketing, secure authentication, other value-added services,and other related applications.

The controller 525 interacts with a secure key encrypted application,which can be an application 520, for decryption and installation in asecure element (not illustrated) of the contactless device 510. In anexemplary embodiment, the controller 525 is a Bluetooth link controller.The Bluetooth link controller can send and receive data, identifying thePOS data collector 105, performing authentication and cipheringfunctions, and directing how the contactless device 510 will listen fortransmissions from the POS data collector 105 or configure thecontactless device 510 into various power-save modes according to theBluetooth-specified procedures. In another exemplary embodiment, thecontroller 525 is a Wi-Fi controller or an NFC controller capable ofperforming similar functions via corresponding protocols.

The application 520 is a program, function, routine, applet or similarentity that exists on and performs its operations on the contactlessdevice 510. For example, the application 520 may be one or more of adigital wallet application, a coupon application, a loyalty cardapplication, another value-added application, a user interfaceapplication, or other suitable application operating on the contactlessdevice 510. Additionally, the secure element (not illustrated) also maycomprise secure contactless software applications, such as paymentapplications, secure forms of the applications 520, authenticationapplications, payment provisioning applications, or other suitableapplication using the secure functionality of the secure element.

In an exemplary embodiment, the contactless device 510 includes adigital wallet application 520. The exemplary digital wallet application520 can interact with a web browser (not illustrated) or can be embodiedas a companion application of the web browser. As a companionapplication, the digital wallet application 520 executes within the webbrowser (not illustrated). That is, the digital wallet application 520may be an application program embedded in the web browser (notillustrated). In an exemplary embodiment, the digital wallet application520 also can interact with the remote system 150.

The contactless device 510 also includes a memory 530 accessible by thedigital wallet application 520 and a web server (not illustrated). Theexemplary memory 530 can include one or more tangible computer-readablestorage devices. The memory 530 can be disposed in the contactlessdevice 510 or can be logically coupled to the contactless device 510.

The exemplary digital wallet application 520 enables storage of one ormore redemption offers. In an exemplary embodiment, the redemptionoffers can be maintained by the digital wallet application 520 andstored in the memory 530. In an alternative exemplary embodiment, theredemption offers can be maintained by the remote system 150. In anexemplary embodiment, the redemption offers can be maintained by theremote system 150 and accessible by the digital wallet application 520.

The contactless device 510 communicates with the POS data collector 105via an antenna 535 that communicates with the transceiver 372 of the POSdata collector 105 via the communication channel 515. In an exemplaryembodiment, once the contactless device application 520 has beenactivated and prioritized, the controller 525 is notified of the stateof readiness of the contactless device 510 for a transaction. Thecontroller 525 outputs through the antenna 535 a radio signal, orlistens for radio signals from the POS data collector 105. Onestablishing a communication channel between the contactless device 510and the POS data collector 105, the POS data collector 105 requests thelist of available applications 520 from the contactless device 510. Adirectory is first displayed, after which, based on the set priority orthe type of POS data collector 105, an application 520 is chosen andinitiated for the transaction. The method for processing a POSredemption is described in more detail hereinafter with reference to themethods described in FIGS. 6-10.

System Process

FIG. 4 is a block flow diagram depicting a method 400 for collecting POSdata, in accordance with certain exemplary embodiments. The method 400is described with reference to components illustrated in FIGS. 1-3.

In block 405, a software module 380 of a POS data collector 105 may waitto obtain a product identifier associated with a product that is beingpurchased. For example, POS scanner 110 is used to scan the barcode of aproduct that is being purchased. After scanning, the POS scanner 110transmits the product identifier for processing by a POS applicationrunning on POS terminal 115. Because the POS data collector 105 iscommunicatively coupled between POS scanner 110 and POS terminal 115,POS data collector 105 may obtain the product identifier associated withthe purchased product as the identifier is transmitted to the POSterminal 115.

In block 410, software module 380 may transmit an unmodified version ofthe product identifier to POS terminal 115. In accordance with certainexemplary embodiments, this transmission may be performed withoutnoticeable delay so that the addition of POS data collector 105 to POSsystem 100 does not interfere with the normal business flow. In otherwords, the POS application running on POS terminal 115 will be able toproceed with the purchase transaction, and will not be noticeablydelayed by the addition of the POS data collector 105 to POS system 100.

In block 415, the software module 380 may establish a connection withremote system 150 via network module 364 and network 140. According toan exemplary embodiment, software module 380 may establish thisconnection by resolving the host name and/or address via DNS or otherprotocols, and subsequently communicating with remote system 150 toestablish the connection. If a connection is successfully established(block 420), software module 380 may proceed to block 425 and maytransmit the product identifier to remote host 150. According to certainexemplary embodiments, this transmission may be via the HTTPS protocol,or any other protocol suitable for communicating data over network 140to remote system 150. According to exemplary embodiments that utilizethe HTTPS protocol, software module 380 may verify the validity of theSSL certificate, and may not transmit data if validity is notestablished.

According to an exemplary embodiment, the data transmission in block 425may include only the product identifier. In other embodiments, softwaremodule 380 may transmit additional data to remote server 150. In bothcases, and according to the HTTPS protocol used in an exemplaryembodiment, the transmitted data may be sent as a body of a POST requestover HTTPS. Thus, when only the product identifier is transmitted, thebody of the POST request may contain the following fields:

scan:<product_identifier>

In an alternative embodiment, software module 380 may provide additionaldata including, but not limited to, one or more of the following: amerchant identifier, a store identifier (for example, for merchants withmore than one store), a scanned product count, a current time stamp, adevice identifier (for example, a manufacturer-issued serial number), asecurity key (for example, for secure communication), a software versionnumber, and a device GPS coordinate. In accordance with this alternativeembodiment, the body of the POST request may contain one or more of thefollowing fields:

serial:<device_identifier> key:<security key> version:<software version>currenttime:<current_time> sequence:<scanned_product_count>store:<store_identifier> gps:<gps_coordinates> scan:<product_identifier>

In yet another exemplary embodiment, software module 380 may provide atime stamp indicating when the product identifier was scanned by the POSscanner. According to this embodiment, the body of the POST requestsdepicted above may be modified as follows:

scan:<product identifier>:<timestamp>

In block 445, software module 380 may determine if the transmission wassuccessful. For example, according to a transmission via HTTPS, softwaremodule 380 may receive a HTTP 200/OK response with an empty body whenthe transmission is successful. Alternatively, software module 380 mayreceive either a 4xx or 5xx HTTP error if the transmission isunsuccessful.

If the data transmission is not successful (block 445), software module380 may proceed to block 450, where it may determine if a predeterminedretry count has been exceeded. If the retry count has not been exceeded,software module 380 may increment the retry count and proceed back toblock 425 where it may again attempt to transmit the product identifier(and any other data, as described above) to remote system 150. Accordingto an exemplary embodiment, software module 380 may proceed to block 425immediately. In other embodiments, software module 380 may wait for apredetermined amount of time (for example, 1, 5, 10, etc. minutes)before retrying the transmission. In yet another exemplary embodiment,software module 380 may wait for 1 minute before retrying (the “timeoutinterval”), and if the next attempted transmission is unsuccessful,double the timeout interval. In this embodiment, software module 380 maycontinue to double the timeout interval for each consecutive failedtransmission attempt until the timeout interval is 32 minutes, at whichpoint software module 380 may keep trying to transmit the data every 32minutes.

In the event the number of transmission attempts exceeds thepredetermined retry count in block 450, software module 380 may proceedto block 440, and may activate error indicator 130. In this manner, anemployee of the retail store may be notified that the POS data collectorhas encountered an error.

Similarly, if a connection is not successfully established (block 420),software module 380 may proceed to block 435, where it may determine ifa predetermined retry count has been exceeded. If the retry count hasnot been exceeded, software module 380 may increment the retry count andproceed back to block 415 where it may again attempt to establish aconnection with remote system 150. Here, a timeout interval algorithmsimilar to that described above may be used. In the event the number ofconnection attempts exceeds the predetermined retry count in block 435,software module 380 may proceed to block 440, and may activate errorindicator 130. In this manner, an employee of the retail store may benotified that the POS data collector has encountered an error.

In the event the error indicator is activated, software module 380 mayproceed back to block 405, where it may wait to obtain the next productidentifier associated with an additional product that is beingpurchased. Thus, software module 380 may continue to operate despite theerror condition. In this manner, the POS data collector 105 may at leastcontinue to transmit scanned product identifiers to the POS terminal(block 410) so that the error condition does not interfere with businessoperations. Additionally, POS data collector 105 may continue to collectdata for subsequent transmission to the remote system 150 uponresolution of the errors. According to an exemplary embodiment (notdepicted), software module 380 may, in such a case, deactivate the errorindicator if a subsequent attempt to establish a connection with remotesystem 150 or to transmit data to remote system 150 is successful.

Thus, according to the exemplary embodiment of FIG. 4, POS datacollector 105 may transmit each product identifier essentially in realtime as each product is scanned and without significant delay (in otherwords, no more delay than is necessary for the method steps of FIG. 4 tobe performed).

According to an exemplary embodiment and as an alternative totransmitting POS data in real time, POS data collector 105 mayaccumulate POS data and transmit the accumulated data to remote system150 periodically. For example, software module 380 may store accumulatedproduct identifiers and corresponding time stamps in storage resource362 until such time as they are transmitted to remote system 150. In oneembodiment, for example, software module 380 may accumulate productidentifiers for a predetermined amount of time (for example, 5, 15, 30,etc. minutes) before transmitting the data to remote server 150. In yetanother embodiment, software module 380 may accumulate productidentifiers and may transmit the data to remote server 150 after apredetermined number of identifiers (for example, 5, 100, 1000, etc.)have been accumulated. In an alternative exemplary embodiment,transmission may occur via a peer-to-peer (P2P) and/or delay-tolerantnetwork (DTN) protocol. For example, POS data collector 105 may transmitthe POS data to a merchant's smart phone before to remote system 150.

In still a further embodiment, software module 380 may accumulate POSdata and use both a time period and a predetermined product identifiercount to determine when to transmit the data to remote system 150.According to this exemplary embodiment, software module 380 may bufferproduct identifiers for a predetermined amount of time or until apredetermined number of product identifiers are accumulated—whichevercomes first. In still another embodiment, software module 380 mayaccumulate POS data until a predetermined amount of data is accumulated(for example, 1 kB, 1 MB, etc.). Accordingly, the data transmission maybe optimized to minimize traffic while still sending updates withreasonable frequency.

Thus, software module 380 may transmit only the accumulated productidentifiers, in accordance with an exemplary embodiment. In such a case,the body of an HTTPS request may be formatted as follows:

scan:<product_identifier>:<timestamp>scan:<product_identifier>:<timestamp> . . .

In embodiments where the software module 380 provides data in additionto the product identifiers, the body of the POST request may contain oneor more of the following fields:

serial:<device_identifier> key:<security key> version:<software version>currenttime:<current_time> sequence:<scanned_product_count>store:<store_identifier> gps:<gps_coordinates>scan:<product_identifier>:<timestamp>scan:<product_identifier>:<timestamp> . . .

In the exemplary embodiments described above, the connection to remotesystem 150 via network module 364 and network 140 may be kept open ormay be closed between transmissions.

POS data collector 105 may transmit an alive indicator to remote system150, in accordance with an exemplary embodiment. For example, regardlessof whether any products are scanned, software module 380 may send analive indicator to remote system 150 on a periodic basis (for example,every 4, 6, 8, etc. hours). Software module 380 may transmit an aliveindicator using steps similar to those described in FIG. 4. For example,software module 380 may perform the same retry/error algorithm whenattempting to establish a connection with remote system 150 and totransmit the alive indicator.

According to exemplary embodiments that utilize the HTTPS protocol fortransmission, the HTTPS transmission for an alive indicator may bedirected to a URL that is different from the URL used for transmittingproduct identifier(s). In addition, the body of an alive indicator POSTrequest may contain one or more of the following fields:

serial:<device_identifier> key:<security key> version:<software version>currenttime:<current_time> sequence:<scanned_product_count>

Accordingly, remote system 150 may use the alive indicator transmissionto monitor POS data collector 105 for errors. In other words, remotesystem 150 may determine that POS data collector 105 is not operating ifit does not receive an alive indicator according to the predeterminedperiodic schedule. Thus, a POS data collection system provider canarrange to troubleshoot POS data collector 105 in the event it stopsoperating correctly.

FIG. 6 is a block flow diagram depicting a method 600 for processing POSredemptions, in accordance with exemplary embodiments. The method 600 isdescribed with reference to the components illustrated in FIG. 5.

In an exemplary embodiment, a signal is provided to the data collector105 that indicates when a previous transaction has ended and a newtransaction has started. In an exemplary embodiment, the data collector105 can detect a signal produced when a receipt is printed at the end ofthe previous transaction. In this embodiment, the data collector 105 maybe communicatively coupled to a printer (not illustrated) that prints areceipt or to the POS terminal 115 that sends an electronic copy of areceipt to the user. In an alternative exemplary embodiment, the cashiermay scan a bar code designed to signify the beginning of a newtransaction or the end of a transaction. In this embodiment, the datacollector 105 may intercept the bar code as it is transmitted from thePOS scanner 110/212 or base station 210 to the POS terminal 115. In anadditional alternative exemplary embodiment, the cashier may enter aparticular key or set of keys at the POS terminal 115. In thisembodiment, the data collector 105 would intercept the injectedkeystrokes from the POS terminal 115. In exemplary embodiment, thecashier may scan a bar code to signal the remote system 150 to look upoffer codes to apply to the items scanned after the end of the previoustransaction and prior to the termination of the current transaction.

In block 610, the merchant scans items for purchase. In an exemplaryembodiment, the merchant scans the bar codes of items using the POSscanner 110. In an alternative exemplary embodiment, the merchant usesthe POS bar code scanner 212 coupled to the base station 210 to scan thebar codes of the items for purchase.

In block 620, the POS data collector 105 intercepts the productidentifier associated with the bar code of each product being scanned bythe POS scanner 110 or 212 as it is transmitted from the POS scanner 110or base station 210 to the POS terminal 115. The POS data collector 105stores the information before, or simultaneously with, forwarding theinformation to the POS terminal 115. Blocks 610 and 620 can be repeatedas necessary to capture the product identifier of each product beingpurchased in the transaction.

The user “taps” the contactless device 510 in the proximity of the POSdata collector 105, in block 630. In an exemplary embodiment, thetransceiver 372 of the POS data collector 105 generates a radiofrequency (RF) or other field continuously polling for the presence of acontactless device 510, and the user “taps” the contactless device 510by placing the device 510 within the field of the data collector 105. Inan exemplary embodiment, the methods described hereinafter may occur ina single “tap” of the contactless device 510. The communication channelestablished in block 640 discussed hereinafter between the contactlessdevice 510 and the POS data collector 105 may remain open after the“tap,” if necessary. In an alternative exemplary embodiment, the methodsdescribed hereinafter may require further interaction, taps, or userinput.

In block 640, the POS data collector 105 detects the contactless device510 and establishes a communication channel with the contactless device510. In exemplary embodiments, the communication channel can be secure,if desired, for communicating sensitive data. Alternatively, thecommunication channel can be unsecure, if desired. In an exemplaryembodiment, the contactless device 510 accepts the secure communicationchannel request from the POS data collector 105, and a communicationchannel is established. During this process, the contactless device 510and the POS data collector may establish a relationship by creating anencryption key for use in encrypting communications therebetween. In anexemplary embodiment, the POS data collector 105 and the contactlessdevice 510 can use any number of protocols to enable a secure orunsecure communication channel, including but not limited to Bluetoothprotocols such as a link management protocol (LMP), logical link controland adaptation protocol (L2CAP), and service discovery protocol (SDP).In an exemplary embodiment, Bluetooth pairing of the POS data collector105 and the contactless device 510 can occur automatically by suchcommunication. In another exemplary embodiment, the contactless device510 may present the user with an interface requesting authorization tosuccessfully pair the contactless device 510 and the POS data collector105 to enable a Bluetooth communication. Such Bluetooth communicationsinclude secure communication functionality.

In another exemplary embodiment, the POS data collector 105 may presenta Wi-Fi connection to which the contactless device 510 can connect,which connection can occur automatically or via user authorization asdescribed previously with regard to the Bluetooth embodiment. A Wi-Ficonnection can comprise secure communication functionality, such ascryptographic protocols, including transport layer security or securesocket layer protocols, or other secure communication methodology.

In an alternative exemplary embodiment, the POS data collector 105 maypresent a near field communication (“NFC”) connection to the contactlessdevice 510 to communicate via NFC protocols.

In an exemplary embodiment, the transceiver 372 of the POS datacollector 105 detects the physical proximity of the contactless device510. The POS data collector 105 and the contactless device 510 mayinitially interact via NFC protocols whereby the data collector 105detects the presence of the device 510 and requests communicationtherewith. After initial interaction via an NFC protocol, the POS datacollector 105 and the contactless device 510 can establish a secondarycommunication channel via a different communication protocol, such asBluetooth or Wi-Fi. In an alternative exemplary embodiment, the POS datacollector 105 initiates a timing protocol with the contactless device510. The timing protocol ensures communication with a single device anddetects additional time that would be required to communicate through aproxy device, thereby determining whether the contactless device 510 isphysically present at the POS data collector 105. In another exemplaryembodiment, the timing protocol can establish a period of inactivitythat will terminate the communication between the contactless device 510and the data collector 105 once a secure communication channel isestablished.

In block 650, the POS data collector 105 identifies the contactlessdevice 510 and its user based on information provided by the contactlessdevice 510. In an exemplary embodiment, the contactless device 510transmits user identification information to the POS data collector 105.The user identification information may be used to identify a useraccount stored in the remote system 150. In exemplary embodiments, theuser identification information can comprise one or more of name,account number, other personal identifier, device identifier, login,address, phone number, or other suitable information that identifies thecontactless device 510, the user, and/or the user's account at theremote system 150.

The POS data collector 105 identifies the offers to apply to thepurchase, in block 660, based on the information received in block 650.The method for identifying offers to apply to the purchase is describedin more detail hereinafter with reference to the methods in FIGS. 7-8.

FIG. 7 is a block flow diagram depicting a method 660 for selectingoffers, in accordance with exemplary embodiments. The method 660 isdescribed with reference to the components illustrated in FIG. 5.

In an exemplary embodiment, the method 660 may be performed at any timeduring or after the transaction. For example, offers may be appliedbefore the conclusion of the transaction, wherein the value of theoffers is deducted from the total cost of the transaction. In analternative exemplary embodiment, the offers may be applied after thetransaction is completed. For example, the user may pay the total costof the transaction and receive a rebate or redemption for the value ofthe offers.

In block 710, the POS data collector 105 identifies the items scanned bythe merchant. In an exemplary embodiment, the POS data collector 105recalls from the storage 362 the product identifier associated with eachproduct that was scanned by the POS scanner 110 or 212 (for example, thebar code information received).

The POS data collector 105 identifies the relevant offers, in block 720.The method 720 for identifying the relevant offers is described in moredetail hereinafter with reference to the methods of FIG. 8.

FIG. 8 is a block flow diagram depicting a method 720 for identifyingoffers, in accordance with exemplary embodiments. The method 720 isdescribed with reference to the components illustrated in FIG. 5.

In block 810, the POS data collector 105 transmits one or more of theuser identification received from the contactless device 510 in block650, merchant identification information obtained from the POS terminal115 or stored in the memory 362, and the product information stored inthe memory 362 to the remote system 150. As previously described, theuser identification information may be used to identify the user accountstored in the remote system 150. The user account at the remote system150 may have stored therein offers previously collected by the user oravailable to the user for use in a purchase transaction.

In an alternative exemplary embodiment, the POS data scanner 105communicates directly with the contactless device 510 without the remotesystem 150. The POS data collector 105 may transmit one or more of themerchant identification information obtained from the POS terminal 115or stored in the memory 362 and the product information stored in thememory 362 to the contactless device 510 to enable access to theavailable offers previously collected by the user or available to theuser for use in a purchase transaction and stored in the contactlessdevice 510.

In another exemplary embodiment, the POS data collector 105 can transmitthe GPS coordinates to the contactless device 510 or the remote system150 to enable identification of the merchant via location and to accessto the available offers stored in the contactless device 510 or theremote system 150. In an alternative exemplary embodiment, thecontactless device 510 accesses internal GPS coordinates generatedwithin the contactless device 510 to identify the merchant via location.

The POS data collector 105, the remote system 150, and/or the digitalwallet application 520 of the contactless device 510 accesses andreviews the available offers, other value-added services, or other itemsavailable for use in the purchase transaction, in block 820. In anexemplary embodiment, the POS data collector 105 communicates with theremote system 150 to access the available items. In an alternativeexemplary embodiment, the POS data collector communicates with thecontactless device 510 to access the available items. In an exemplaryembodiment, offers may include, but are not limited to, coupons, prepaidoffers, redemptions, rebates, discount codes, discounts, loyaltyrewards, points, and other forms for value added services.

In block 830, the POS data collector 105, the remote system 150, and/orthe digital wallet application 520, as appropriate, compares theavailable items with the product identification information (forexample, the product bar code information). In an exemplary embodiment,these components also compare the available merchant offers to themerchant identification information.

The POS data collector 105 then identifies offers applicable to thetransaction, in block 840. For example, based on the comparisonconducted in block 830, a match between an offer (such as a coupon,prepaid offer, value-added service, or other offer) and the productidentification information for a product means the matching offer isapplicable to the transaction. Additionally, based on the comparisonconducted in block 830, a match between an offer (such as a coupon,prepaid offer, value-added service, or other offer) and the merchantidentification information for the merchant means the matching offer isapplicable to the transaction.

From block 840, the method 660 proceeds to block 730 (FIG. 7).

Returning to FIG. 7, in block 730, the POS data collector 105 determineswhether multiple offers are available for the transaction. For example,multiple offers may be available for a single product, such as aspecified amount or a specified percentage off the cost of the product;multiple offers may be available for a transaction conducted with themerchant, for example, a specified amount off the purchase of multipleproducts or a specified amount or percentage reduction if the purchaseprice exceeds a specified amount; multiple loyalty redemptions may beavailable if the user has earned separate loyalty rewards, or otheroffer choices may be applicable.

If multiple offers are applicable, the POS data collector 105 presentsthe available options to the user via the contactless device 510, inblock 740. In an exemplary embodiment, the user is presented with theoptions via user interface 515 of the contactless device 510. In anexemplary embodiment, the user interface 515 presents the options as apop-up window prompting action by the user. In an alternative exemplaryembodiment, an application 520 is initiated prompting action by theuser.

In an exemplary embodiment, the remote system 150, the data collector105, or the digital wallet application 520 of the contactless device 510can determine the best value use of multiple offers and canautomatically apply the best value of multiple offers to the purchasebased on the redemption rules for each offer. For example, theappropriate component can apply all offers having redemption rules metby the purchase transaction. If multiple offers apply but cannot be usedtogether, the appropriate component can determine which offer results inthe best value to the user and can apply that offer.

In block 750, in the case where the user is provided an opportunity toselect one of multiple offers to apply to the transaction, the userselects the offer(s) to apply to the purchase. In an exemplaryembodiment, the user utilizes a touch screen, keyboard, trackball, trackpad, or other input device of the contactless device 510 to select theoffers to apply to the purchase.

In block 750, the user's input is then processed by the requestingcomponent. For example, the digital wallet application 520 of thecontactless device 510 can receive the user's input and can use theuser's input to identify and apply the appropriate offers to thetransaction. Alternatively, the digital wallet application 520 of thecontactless device 510 can receive the user's input and can forward theuser's input to the POS data collector 105 to identify and apply theappropriate offers to the transaction.

In block 760, the POS data collector 105 reads the offer code or otheridentifier associated with each applicable and/or selected offer to beapplied to the transaction.

In an exemplary embodiment, the POS data collector 105 receives theoffer codes from the remote system 150. In an alternative exemplaryembodiment, the POS data collector 105 receives the offer codes from thecontactless device 510.

Referring back to block 730, if multiple offers do not apply to thetransaction or if user input is not needed to select applicable offers,the method 660 can proceed from block 730 directly to block 760.

The POS data collector 105 transmits the offer codes to the POS terminal115, in block 770.

From block 770, the method 660 proceeds to block 670 (FIG. 6).

Returning to FIG. 6, in block 670, the POS terminal 115 redeems theoffers received from the POS data collector 105. In an exemplaryembodiment, the POS terminal 115 processes the offer codes received fromthe POS data collector to apply the offers to the transaction.

In an exemplary embodiment, the block 670 may be performed at any timeduring or after the transaction. For example, offers may be appliedbefore the conclusion of the transaction, wherein the value of theoffers is deducted from the total cost of the transaction. In analternative exemplary embodiment, the offers may be applied after thetransaction is completed. For example, the user may pay the total costof the transaction and receive a rebate or redemption for the value ofthe offers. In this embodiment, a redemption may be credited to anyfinancial account designated by the user. For example, the redemptionmay be credited to the same financial account as used by the user tomake the purchase or to a different financial account than used in thetransaction. Alternatively, the redemption may be split between one ormore financial accounts. For example, the redemption may be splitbetween the financial account used to make the purchase and a differentfinancial account, or between multiple different financial accounts.

In block 680, the communication channel between the contactless device510 and the POS data collector 105 is terminated. In an exemplaryembodiment, the original connection can be terminated when the requestis communicated after block 640, or any suitable time thereafter.

General

Users may be allowed to limit or otherwise affect the operation of thefeatures disclosed herein. For example, users may be given opportunitiesto opt-in or opt-out of the collection or use of certain data or theactivation of certain features. In addition, users may be given theopportunity to change the manner in which the features are employed,including for situations in which users may have concerns regardingprivacy. Instructions also may be provided to users to notify themregarding policies about the use of information, including personallyidentifiable information, and manners in which each user may affect suchuse of information. Thus, information can be used to benefit a user, ifdesired, through receipt of relevant advertisements, offers, or otherinformation, without risking disclosure of personal information or theuser's identity.

One or more aspects of the exemplary embodiments may include a computerprogram that embodies the functions described and illustrated herein,wherein the computer program is implemented in a computer system thatcomprises instructions stored in a machine-readable medium and aprocessor that executes the instructions. However, it should be apparentthat there could be many different ways of implementing the exemplaryembodiments in computer programming, and the exemplary embodimentsshould not be construed as limited to any one set of computer programinstructions. Further, a skilled programmer would be able to write sucha computer program to implement an embodiment based on the appended flowcharts and associated description in the application text. Therefore,disclosure of a particular set of program code instructions is notconsidered necessary for an adequate understanding of how to make anduse the exemplary embodiments. Moreover, any reference to an act beingperformed by a computer should not be construed as being performed by asingle computer as the act may be performed by more than one computer.

The exemplary systems, methods, and blocks described in the embodimentspresented previously are illustrative, and, in alternative embodiments,certain blocks can be performed in a different order, in parallel withone another, omitted entirely, and/or combined between differentexemplary methods, and/or certain additional blocks can be performed,without departing from the scope and spirit of the invention.Accordingly, such alternative embodiments are included in the inventiondescribed herein.

The invention can be used with computer hardware and software thatperforms the methods and processing functions described above. As willbe appreciated by those having ordinary skill in the art, the systems,methods, and procedures described herein can be embodied in aprogrammable computer, computer executable software, or digitalcircuitry. The software can be stored on computer readable media. Forexample, computer readable media can include a floppy disk, RAM, ROM,hard disk, removable media, flash memory, memory stick, optical media,magneto-optical media, CD-ROM, etc. Digital circuitry can includeintegrated circuits, gate arrays, building block logic, fieldprogrammable gate arrays (“FPGA”), etc.

Although specific embodiments of the invention have been described abovein detail, the description is merely for purposes of illustration.Various modifications of, and equivalent blocks corresponding to, thedisclosed aspects of the exemplary embodiments, in addition to thosedescribed above, can be made by those having ordinary skill in the artwithout departing from the spirit and scope of the invention defined inthe following claims, the scope of which is to be accorded the broadestinterpretation so as to encompass such modifications and equivalentstructures.

1. (canceled)
 2. A computer-implemented method for providing point ofsale processing of offers, comprising: intercepting, by a computerdisposed between a point of sale system scanner and a point of salesystem terminal, product identification information for each item in apurchase transaction as the product identification information iscommunicated from the point of sale system scanner to the point of salesystem terminal; communicating, by the computer, the intercepted productidentification information to the point of sale system terminal;detecting, by the computer, a mobile communication device in proximityto the computer; establishing, by the computer, a communication channelbetween the mobile communication device and the computer; receiving, bythe computer via the communication channel with the mobile communicationdevice, user account identification information stored on the mobilecommunication device for accessing a user account maintained by a remotecomputing system, the user account storing offers associated with a userof the mobile communication device; communicating, by the computer andto the remote computing system, the user account identificationinformation, the product identification information, and informationidentifying a merchant that is a party to the purchase transaction foruse in identifying one or more offers to apply to the purchasetransaction; receiving, by the computer and from the remote computingsystem, one or more offers to apply to the purchase transaction, the oneor more offers having been identified based on the user accountidentification information for the user and at least one of the productidentification information and the information identifying the merchantthat is a party to the transaction, each of the one or more offerscomprising a redemption code; and communicating, by the computer, theredemption code for each of the one or more offers to the point of salesystem terminal to be redeemed in connection with the transaction. 3.The method of claim 2, wherein the communication channel is establishedusing at least one of near field communication (NFC), Bluetoothcommunication, or Wi-Fi communication.
 4. The method of claim 2, whereinthe product identification information for each item in the transactionis obtained from a corresponding machine-readable identifier on eachrespective item.
 5. The method of claim 2, wherein the one or moreoffers comprise at least one of a product coupon, a merchant coupon, anda loyalty reward.
 6. The method of claim 2, further comprising:communicating, by the computer, the one or more offers received from theremote computing system to the mobile communication device; andreceiving, by the computer and from the mobile communication device, aselection of the one or more offers to apply to the purchase transactioncomprising at least a portion of the one or more offers communicated tothe mobile communication device by the computer, wherein the step ofcommunicating the redemption code for each of the one or more offers tothe point of sale system terminal comprises communicating the redemptioncode for each offer in the received selection of the one or more offersto apply to the purchase transaction.
 7. The method of claim 2, furthercomprising: receiving, by a remote computing system, the user accountidentification information for the user, the product identificationinformation, and the information identifying the merchant that is aparty to the transaction; identifying, by the remote computing system,offers available to the user of the mobile communications device basedon the offers stored in the user account associated with the useraccount identification information; comparing, by the remote computingsystem, the available offers to the product identification informationand the information identifying the merchant to determine which offerscomprise redemption rules that are met by the purchase transaction;selecting, by the computer, the offers to apply based on the offers thathave redemption rules that are met by the transaction; andcommunicating, by the computer, the one or more offers to apply to thepurchase transaction to the computer.
 8. A computer program product,comprising: a non-transitory computer-readable medium havingcomputer-readable program code embodied therein that, when executed by acomputer disposed between a machine-readable identifier capture deviceand a transaction processing device cause the computer to provide pointof sale processing of offer redemptions, the computer-readable programcode comprising: computer-readable program code to intercept, betweenthe machine-readable identifier capture device and the transactionprocessing device, product identification information for an item in apurchase transaction; computer-readable program code to communicate theintercepted product identification information to the transactionprocessing device; computer-readable program code to receive, from amobile communication device, information associated with a plurality ofstored offers; computer-readable program code to identify one of thestored offers having redemption rules satisfied by the transaction;computer-readable program code to obtain information to redeem the oneof the stored offers having redemption rules satisfied by thetransaction; and computer-readable program code to transmit theredemption information to the transaction processing device.
 9. Thecomputer program product of claim 8, further comprisingcomputer-readable program code to: establish a communication channelwith the mobile communication device, wherein the information associatedwith the plurality of stored offers comprises user identificationinformation stored on the mobile communication device for accessing auser account on a remote computing device, the user account storingoffers associated with a user of the mobile communication device. 10.The computer program product of claim 9, wherein the communicationchannel is established using at least one of a near field communication(NFC) protocol, a Bluetooth communication protocol, and a Wi-Ficommunication protocol.
 11. The computer program product of claim 8,wherein the product identification information for the item in thetransaction is obtained from a machine-readable identifier on the item.12. The computer program product of claim 8, wherein the plurality ofstored offers comprises at least one of a product coupon, a merchantcoupon, and a loyalty reward.
 13. The computer program product of claim8, wherein the computer-readable program code to identify one of thestored offers having redemption rules satisfied by the transactioncomprises: computer-readable program code to read the productidentification information for the item in the transaction andinformation identifying a merchant that is a party to the transaction;computer-readable program code to identify the plurality of storedoffers based on the information associated with the plurality of storedoffers; computer-readable program code to compare the stored offers tothe product identification information and the information identifyingthe merchant to determine which offers comprise redemption rules thatare met by the transaction; and computer-readable program code to selectthe one of the stored offers to apply based on which offers haveredemption rules that are met by the transaction.
 14. The computerprogram product of claim 13, further comprising computer-readableprogram code to receive, from the mobile communication device, an inputof a selection identifying a particular one of the offers to be redeemedin connection with the transaction.
 15. The computer program product ofclaim 8, wherein the computer-readable program code to identify one ofthe stored offers having redemption rules satisfied by the transactioncomprises: computer-readable program code to communicate, to a remotecomputer, the product identification information for the item in thetransaction, information identifying a merchant that is a party to thetransaction, and the information associated with the plurality of storedoffers; and computer-readable program code to receive, from the remotecomputer, the one of the stored offers having redemption rules satisfiedby the transaction.
 16. The computer program product of claim 8, whereinthe computer-readable program code to identify one of the stored offershaving redemption rules satisfied by the transaction comprises:computer-readable program code to communicate, to the mobilecommunication device, the product identification information for theitem in the transaction, information identifying a merchant that is aparty to the transaction, and the information associated with theplurality of stored offers; and computer-readable program code toreceive, from the mobile communication device, the one of the storedoffers having redemption rules satisfied by the transaction.
 17. Asystem for providing point of sale processing of offer redemptions,comprising: a data collecting device disposed between a machine-readableidentifier capture device and a transaction processing device andconfigured to intercept, between the machine-readable identifier capturedevice and the transaction processing device, product identificationinformation for each of a plurality of items in a purchase transaction,forward the intercepted product identification information to thetransaction processing device, receive, from a mobile communicationdevice, information associated with a plurality of stored offers, andcommunicate the product identification information for each of the itemsin the transaction, information identifying a merchant that is a partyto the transaction, and the information associated with the storedoffers; and a remote computer configured to receive, from the datacollecting device, the product identification information for each ofthe items in the transaction, the information identifying the merchantthat is a party to the transaction, and the information associated withthe stored offers, identify the stored offers based on the informationassociated with the stored offers, identify at least one of the storedoffers having redemption rules satisfied by the transaction based on theproduct identification information for each of the items in thetransaction and the information identifying the merchant that is a partyto the transaction, and communicate, to the data collecting device,redemption information for each of the stored offers having redemptionrules satisfied by the transaction, the data collecting device beingfurther configured to communicate the redemption information to thetransaction processing device for redemption in connection with thetransaction.
 18. The system of claim 17, wherein the informationassociated with the stored offers comprises information identifying anaccount of a user of the mobile communication device, the accountoperated by the remote computer and having the stored offers associatedtherewith.
 19. The system of claim 17, wherein the data collectingdevice is configured to receive, from the mobile communication device,the information associated with the stored offers via a communicationchannel established with the mobile communication device.
 20. The systemof claim 17, wherein the data collecting device is configured toreceive, from the mobile communication device, the informationassociated with the stored offers via a near field communication channelestablished with the mobile communication device.
 21. The system ofclaim 17, wherein the data collecting device is configured to receive,from the mobile communication device, the information associated withthe stored offers via a Bluetooth or Wi-Fi communication channelestablished with the mobile communication device.
 22. The system ofclaim 17, wherein the product identification information for each of theitems in the transaction is obtained from a machine-readable identifieron each respective one of the items.
 23. The system of claim 17, whereinthe plurality of stored offers comprises at least one of a productcoupon, a merchant coupon, and a loyalty reward.
 24. The system of claim17, wherein the data collecting device is further configured to:communicate, to the mobile communication device, a plurality of offershaving redemption rules satisfied by the transaction; and receive aninput of a selection identifying a particular one of the plurality ofoffers having redemption rules satisfied by the transaction, wherein theredemption information communicated to the transaction processing devicecomprises redemption information for the particular one of the pluralityof offers having redemption rules satisfied by the transaction.
 25. Acomputer-implemented method for providing point of sale processing ofoffers, comprising: receiving, by a computer, identifying informationfor a user of a mobile communications device, product identificationinformation for each of a plurality of items in a purchase transaction,and information identifying a merchant that is a party to the purchasetransaction, the product identification information having beenintercepted between a machine-readable identifier capture device and atransaction processing device during the purchase transaction;identifying, by the computer, offers available to the user of the mobilecommunications device; comparing, by the computer, the available offersto the product identification information and the informationidentifying the merchant to determine which offers comprise redemptionrules that are met by the transaction; selecting, by the computer, theoffers to apply based on the offers that have redemption rules that aremet by the transaction; and communicating, by the remote computer, theone or more offers to apply to the purchase transaction.
 26. The methodof claim 2, further comprising receiving, by the computer, aninstruction from the point of sale scanner to obtain the one or moreoffers, wherein the step of communicating the user accountidentification information, the product identification information, andinformation identifying a merchant to the remote computing system isperformed in response to receiving the instruction from the point ofsale system scanner to obtain the one or more offers.
 27. The method ofclaim 26, wherein the instruction comprises an indication that allproduct identification information for the purchase transaction has beenobtained by the point of sale system scanner.
 28. The method of claim26, wherein the instruction comprises an indication of an end of thepurchase transaction.
 29. The method of claim 26, wherein theinstruction comprises an indication of a beginning of a PreviouslyPresented purchase transaction.
 30. The computer program product ofclaim 8, the computer-readable code further comprising:computer-readable program code to communicate one or more offersreceived from a remote computing system to the mobile communicationdevice; and computer-readable program code to receive, from the mobilecommunication device, a selection of the one or more offers to applycomprising at least a portion of the one or more offers communicated tothe mobile communication device, wherein transmitting the redemptioninformation to the transaction processing device comprises communicatingthe redemption information for each offer in the received selection ofthe one or more offers to apply to the purchase transaction.